using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using UnityEngine;

namespace Kayac.HyperCasual
{
	public class Store : MonoBehaviour
	{
		public class Item
		{
			public string id;

			public bool consumable;

			public string title;

			public string priceString;

			public decimal localizedPrice;

			public string currencyCode;

			public Item(string id, bool consumable)
			{
			}
		}

		public class Result
		{
			public Item item;

			public bool succeeded;

			public bool newlyPurchased;
		}

		private enum State
		{
			NotInitialized = 0,
			Initializing = 1,
			Error = 2,
			Busy = 3,
			Ready = 4
		}

		[CompilerGenerated]
		private sealed class _003CCoBuy_003Ed__11 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int _003C_003E1__state;

			private object _003C_003E2__current;

			public Store _003C_003E4__this;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return null;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return null;
				}
			}

			[DebuggerHidden]
			public _003CCoBuy_003Ed__11(int _003C_003E1__state)
			{
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
			}

			private bool MoveNext()
			{
				return false;
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
			}
		}

		private State state;

		private Dictionary<string, Item> items;

		private Action<Result> onPurchaseComplete;

		public bool ItemsReady => false;

		public bool Busy => false;

		public bool LastPurchaseSucceeded { get; private set; }

		public void ManualStart(IReadOnlyList<Item> items, Action<Result> onPurchaseComplete, bool consumeAllForDebug)
		{
		}

		[IteratorStateMachine(typeof(_003CCoBuy_003Ed__11))]
		public IEnumerator CoBuy(string id)
		{
			return null;
		}

		public Item GetItem(string id)
		{
			return null;
		}
	}
}
